문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 스파게티 코드 (문단 편집) == 개요 == [[파일:spaghetti_example.gif]] 프로그래밍에 있어서 [[기술적 부채]]에 해당하는 분류로 [[컴퓨터]] 프로그램의 흐름이 복잡하게 [[발적화|뒤엉킨 모습]]을 [[스파게티]]가 엉킨 모습에 비유한 표현이다. 스파게티 코드는 '''겉으로 보기에는''' 작동 자체는 제대로 하거나 하는 것 처럼 보인다. 하지만 해당 코드는 추후 유지보수가 매우 어려워진다. 코드의 작동 방식을 변경하거나 버그를 찾거나 개선하는 등 코드를 '''수정'''하는 모든 작업에 방해가 된다. 특히 [[OOP]]에서 [[상속(프로그래밍)]] 계층이 너무 많아 생긴 스파게티 코드는 따로 [[라자냐]] 코드라고도 한다. 물론 OOP에도 고전적인 스파게티 코드가 생길 수 있다. 이러한 이유로 스파게티 코드는 가독성이 많이 떨어진다는 평이 많다. 특히 이러한 코드는 프로그래밍 초보자들이 많이 작성한다. 심각한 경우 '수정할 바에야 다시 만드는 게 낫다'라는 농담을 하기도 한다. 실제로 규모가 지나치게 커진 스파게티 코드는 처음부터 다시 만드는 것이 유일한 해결책이다.[* 다만 PC게임을 모바일로 포팅할때는 스파게티 코드인 경우 아니더라도 처음부터 다시 만드는 것이 경제적인 경우가 많다. 특히 오래된 게임들은 더욱 그러한데, 이는 설계 당시부터 모바일을 고려하지 않으면 코드의 덩치가 커지고, 용량 압박, 호환성 문제등 모바일로 옮겨놓으면 해결이 거의 불가능에 가까운 버그들이 터져나오기 때문이다. 모바일 포팅이라는 전제가 있는 신작 게임들도 버거워하는 마당에 옛날 게임은 오죽할것이다. 모바일 포팅을 만만하게 보는 경우가 있는데 본인이 '''cpu와 엔진 구조를 통달하고 코드를 처음부터 뒤엎고 다시 만들 수 있을 정도로 능력자가 아닌 이상 기존 게임을 그대로 모바일에 옮긴다는건 불가능에 가깝다.'''] 이렇게 해결한 [[#s-3|실제 사례]] 문단 참고.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기